package demo3.mapper;

import demo3.model.ArticleInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author quan
 * @Description 多表查询
 * @Date 2023/7/25 17:24
 */
@Mapper
public interface ArticleMapper {

    /**
     * 多表查询:方式2
     * 直接在文章的实体类中定义属性用户Id和用户名，此时文章表中的xml文件通过resultMap引入这两个属性。
     * @return
     */
    List<ArticleInfo> queryArticle2();
    /**
     * 多表查询：方式1：根据文章表中的用户id查询用户信息
     * 在文章实体类定义属性为user，则文章表的xml文件中要引入用户user的ResultMap的地址；
     * @return 符合条件的所有用户
     */
    List<ArticleInfo> queryArticle();

    /**
     * if标签的使用
     * @param articleInfo 插入数据：根据用户的输入内容
     */
    void insertByIf(ArticleInfo articleInfo);

    /**
     * where标签的使用
     * @return
     */
    List<ArticleInfo> selectByWhere(@Param("uid") Integer uid, @Param("state") Integer state);

    /**
     * set标签的使用：更新用户名和状态
     * @param uid
     * @param state
     */
    void updateBySet(@Param("uid") Integer uid, @Param("state") Integer state);

    /**
     * 根据传入的id来批量删除数据
     * @param ids
     */
//    void batchDelete(List<Integer> ids);
    void batchDelete(@Param("ids") List<Integer> ids);

}
